package mapeo;

//Aplicacion del patron Strategy
public interface IBaseDatos {

	/**
	 * Guarda un elemento en la BD
	 * @param objGuardar objeto que se desea persistir
	 * @return el id del objeto que se guardo, null si no se puede guardar
	 */
	public Object save(Object objGuardar);
	
	/**
	 * Actualiza el objeto que se pasa por parametro, de no existir, devuelve false
	 * @param objeto con los datos a actualizar
	 * @return true si se realiza la actualizacion, false en caso contrario
	 */
	public boolean update(Object actualizado);
	
	/**
	 * Se elimina el objeto que se pasa por parametro
	 * @param primaryKey PK del objeto a eliminar
	 * @return true si se puede realizar la eliminacion, false en caso contrario
	 */
	public boolean delete(Object primaryKey);
	
	/**
	 * Obtener un objeto de la BD
	 * @param parametro PK del objeto a buscar
	 * @return el objeto de la BD, null si no exite dicho objeto.
	 */
	public Object get(Object primaryKey);
	
	/**
	 * Elimina todos los registros de una tabla
	 * @return true si la operacion se lleva con exito, false en caso contrario
	 */
	public boolean deleteAll();
}
